// 导入数据库操作模块
const db = require('../db/index')

  
// {people:group.people,title:group.title,content:group.content,type:group.type,sign_up_end_time:group.sign_up_end_time,end_time:group.end_time,note:group.note}
//  新增活动的路由
exports.addActivityActivity = (req, res) => {

  // 定义插入  新增活动的SQL 语句
  const sql = `insert into activity set ?`
  // console.log(req.body);
  // 执行插入 新增活动的 SQL 语句
  db.query(sql, req.body , (err, results) => {
      // SQL 语句执行失败
      if (err) return res.cc(err)
    
      // SQL 语句执行成功，但是影响行数不等于 1
      if (results.affectedRows !== 1) return res.cc('新增活动失败！')
    
      //新增活动成功
      res.cc('新增活动成功！', 0)
    })

}

  
//  获取所有活动列表
exports.activityCatesCates = (req, res) => {
  const sql = 'select * from activity '
  db.query(sql, (err, results) => {
      // 1. 执行 SQL 语句失败
      if (err) return res.cc(err)

      let arr = results.reverse();
      let arr2 = arr.slice((req.body.pageNum - 1) * req.body.pageSize, req.body.pageNum * req.body.pageSize)

      // 2. 执行 SQL 语句成功
      res.send({
        status: 0,
        message: '获取活动列表成功！',
        data: arr2,
      })
    })
    
}


// 获取专业活动列表
exports.activityCatesProfessionalCates = (req, res) => {
  // professional 获取专业获取活动列表数据
  const sql = 'select * from activity where professional=?'
  db.query(sql, req.body.professional, (err, results) => {
      // 1. 执行 SQL 语句失败
      if (err) return res.cc(err)

      let arr = results.reverse();
      let arr2 = arr.slice((req.body.pageNum - 1) * req.body.pageSize, req.body.pageNum * req.body.pageSize)

      // 2. 执行 SQL 语句成功
      res.send({
        status: 0,
        message: '获取活动列表成功！',
        data: arr2,
      })
    })
    
}




// 修改活动列表
exports.activityModifyModify = (req, res) => {
  // 定义待执行的 SQL 语句
  const sql = 'update activity set ? where activity_id=?'
  // console.log(req);
  // 调用 db.query() 执行 SQL 语句并传递参数
  db.query(sql,[req.body, req.body.activity_id], (err,results) => {
      // 执行SQL 语句失败
      if(err) return res.cc(err)
      // 执行 SQL 语句成功 但是影响行数不等于1
      if(results.affectedRows !== 1) return res.cc('修改活动失败！')
      // 成功
      res.cc('修改活动成功！',0) 
  })
}


// 删除或恢复活动列表   
exports.deleteActivityActivity = (req, res) => {
    
  const sql = `update activity set ? where activity_id=?`

  db.query(sql, [req.body, req.body.activity_id], (err, results) => {
      // 执行 SQL 语句失败
      if (err) return res.cc(err)
    
      // SQL 语句执行成功，但是影响行数不等于 1
      if (results.affectedRows !== 1) return res.cc('删除或恢复活动失败！')
    
      // 删除活动成功
      res.cc('删除或恢复活动成功！', 0)
    })

}



//  新增报名活动的路由
exports.addsignUpsignUp = (req, res) => {

  // 定义插入  新增活动的SQL 语句
  const sql = `insert into sign_up set ?`
  const info = {
    ...req.body,
    user_id:req.user.user_id
  }
  // console.log(req.body);
  // 执行插入 新增活动的 SQL 语句
  db.query(sql, info , (err, results) => {
      // SQL 语句执行失败
      if (err) return res.cc(err)
    
      // SQL 语句执行成功，但是影响行数不等于 1
      if (results.affectedRows !== 1) return res.cc('新增活动失败！')
    
      //新增活动成功
      res.cc('新增活动成功！', 0)
    })

}


//  根据activity_id和audit获取报名信息
exports.signUpCatesCates = (req, res) => {
  const sql = 'select * from sign_up where (activity_id=? and audit=?)'
  db.query(sql, [req.body.activity_id , req.body.audit] ,(err, results) => {
      // 1. 执行 SQL 语句失败
      if (err) return res.cc(err)

      let arr2 = results.slice((req.body.pageNum - 1) * req.body.pageSize, req.body.pageNum * req.body.pageSize)

      // 2. 执行 SQL 语句成功
      res.send({
        status: 0,
        message: '获取报名信息成功！',
        data: arr2,
      })
    })
    
}

//获取该用户报名的所有活动
exports.signUpUserUser = (req, res) => {
  const sql = 'select * from sign_up where user_id=?'
  db.query(sql, req.user.user_id,(err, results) => {
      // 1. 执行 SQL 语句失败
      if (err) return res.cc(err)

      let arr = results.reverse();
      let arr2 = arr.slice((req.body.pageNum - 1) * req.body.pageSize, req.body.pageNum * req.body.pageSize)

      // 2. 执行 SQL 语句成功
      res.send({
        status: 0,
        message: '获取用户报名的活动成功！',
        data: arr2,
      })
    })
    
}


// 对报名表进行通过和未通过审核 
exports.signUpAuditAudit = (req, res) => {

  // 判断是否是审核成功或者失败
  if(req.body.audit == 1) {
    // 定义待执行的 SQL 语句
    const sql = 'update sign_up set audit=? where sign_up_id=?'
    // console.log(req);
    // 调用 db.query() 执行 SQL 语句并传递参数
    db.query(sql,[req.body.audit, req.body.sign_up_id], (err,results) => {
        // 执行SQL 语句失败
        if(err) return res.cc(err)
        // 执行 SQL 语句成功 但是影响行数不等于1
        if(results.affectedRows !== 1) return res.cc('修改通过审核失败！')
        const sql2 = 'select * from activity where activity_id=?'
        db.query(sql2, req.body.activity_id, (err2,results2) => {
          // 1. 执行 SQL 语句失败
          if (err) return res.cc(err2)
          let num = results2[0].people - req.body.sign_up_people
          // console.log(num);
          const sql3 = 'update activity set people=? where activity_id=?'
          db.query(sql3, [num,req.body.activity_id], (err3,results3) => {
             // 执行SQL 语句失败
            if(err) return res.cc(err)
            // 执行 SQL 语句成功 但是影响行数不等于1
            if(results.affectedRows !== 1) return res.cc('修改通过审核失败！')
            // 成功
            res.cc('修改通过审核成功！',0) 
          })
        })
    })

  }else {
    // 定义待执行的 SQL 语句
    const sql = 'update sign_up set audit=? where sign_up_id=?'
    // console.log(req);
    // 调用 db.query() 执行 SQL 语句并传递参数
    db.query(sql,[req.body.audit, req.body.sign_up_id], (err,results) => {
        // 执行SQL 语句失败
        if(err) return res.cc(err)
        // 执行 SQL 语句成功 但是影响行数不等于1
        if(results.affectedRows !== 1) return res.cc('修改未通过审核失败！')
        // 成功
        res.cc('修改未通过审核成功！',0) 
    })
  }
}


//根据activity_id 搜索对应的活动 
exports.activityCorrespondingCorresponding = (req, res) => {
  const sql = 'select * from activity where activity_id=?'
  db.query(sql, req.body.activity_id,(err, results) => {
      // 1. 执行 SQL 语句失败
      if (err) return res.cc(err)
      // 2. 执行 SQL 语句成功
      res.send({
        status: 0,
        message: '获取用户报名的活动成功！',
        data: results,
      })
    })
    
}


// 修改报名活动表
exports.chengeSignUpAudit = (req, res) => {
    // 定义待执行的 SQL 语句
    const sql = 'update sign_up set ? where sign_up_id=?'
    // console.log(req);
    // 调用 db.query() 执行 SQL 语句并传递参数
    db.query(sql,[req.body, req.body.sign_up_id], (err,results) => {
        // 执行SQL 语句失败
        if(err) return res.cc(err)
        // 执行 SQL 语句成功 但是影响行数不等于1
        if(results.affectedRows !== 1) return res.cc('修改失败！')
        // 成功
        res.cc('修改成功！',0) 
    })
}
  